package edu.wpi.first.wpilibj.templates;

/**
 * The RobotMap is a mapping from the ports sensors and actuators are wired into
 * to a variable name. This provides flexibility changing wiring, makes checking
 * the wiring easier and significantly reduces the number of magic numbers
 * floating around.
 */
public class RobotMap {
    
    /*
     * PWM PORTS
     * 
     * 1 - LEFT_DRIVETRAIN_PWM_PORT
     * 2 - RIGHT_DRIVETRAIN_PWM_PORT
     * 3 - DIFFERENTIAL_PWM_PORT
     * 4 - ARM_PWM_PORT
     * 5 - FLYWHEEL_PWM_PORT
     * 6 - BOTTOM_INDEXER_PWM_PORT
     * 7 - TOP_INDEXER_PWM_PORT
     * 8 - WRIST_PWM_PORT
     * 9 - INTAKE_PWM_PORT
     */
    
    /*
     * ENCODER PORTS
     * 
     * 1 - LEFT_ENCODER_A_CHANNEL
     * 2 - LEFT_ENCODER_B_CHANNEL
     * 3 - RIGHT_ENCODER_A_CHANNEL
     * 4 - RIGHT_ENCODER_B_CHANNEL
     */
    
    /*
     * POT PORTS
     * 
     * 1 - ARM_POT_PORT
     * 2 - WRIST_POT_PORT
     */
    
    // Sidecar Information
    public static final int SIDECAR_ONE = 1;
    public static final int SIDECAR_TWO = 2;
    
    // Drivetrain Information
    public static final int LEFT_FORE_VICTOR = 1;
    public static final int LEFT_REAR_VICTOR = 2;
    public static final int RIGHT_FORE_VICTOR = 3;
    public static final int RIGHT_REAR_VICTOR = 4;
    
    public static final int LEFT_ENCODER_A_CHANNEL = 1;
    public static final int LEFT_ENCODER_B_CHANNEL = 2;
    public static final int RIGHT_ENCODER_A_CHANNEL = 3;
    public static final int RIGHT_ENCODER_B_CHANNEL = 4;
    
    public static final double FEET_TO_TICK_CONVERSION_FACTOR = 0.0021;
    
    // Shifter Information
    public static final int LEFT_DIFFERENTIAL_PORT = 5;
    public static final int RIGHT_DIFFERENTIAL_PORT = 6;
    
    // Arm Information
    public static final int LEFT_ARM_PWM_PORT = 1;
    public static final int RIGHT_ARM_PWM_PORT = 2;
    public static final int BOTTOM_INDEXER_PWM_PORT = 3;
    public static final int TOP_INDEXER_PWM_PORT = 4;
    public static final int WRIST_PWM_PORT = 5;
    public static final int LEFT_INTAKE_PWM_PORT = 6;
    public static final int FLYWHEEL_PWM_PORT = 7;
    public static final int RIGHT_INTAKE_PWM_PORT = 8;
    public static final int FIRST_STOP_PWM = 9;
       
    public static final int ARM_POT_PORT = 1;
    public static final int WRIST_POT_PORT = 2;
    public static final int FIRST_TOP_PORT = 3;
    public static final int FIRST_BOTTOM_PORT = 4;
    public static final int SECOND_TOP_PORT = 5;
    public static final int SECOND_BOTTOM_PORT = 6;
    public static final int THIRD_TOP_PORT = 7;
    public static final int THIRD_BOTTOM_PORT = 8;
    public static final int FLYWHEEL_SENSOR_PORT_LIGHT = 1;
    public static final int FLYWHEEL_SENSOR_PORT_DARK = 2;
    
    // Intake Command Information
    public static final int INTAKE_FRIZBEE = 1;
    public static final int STOP_INTAKE = 0;
    public static final int REVERSE_INTAKE = -1;
    
    // State Information
    public static final double MOVE_UP_ONE_TIME = 0.60;
    
} // end RobotMap
 